#include <iostream>

#include "iostream"
#include "vector"
#include "unordered_map"
#include "unordered_set"
#include "algorithm"
#include "string"
#include "list"
#include "string.h"



class OneLoop {
public:
    int vec_w;
    void draw(int layer){
        vec2[vec_w/2-layer*2][vec_w/2-layer*2]='$';
        vec2[vec_w/2-layer*2][vec_w/2-layer*2-1]='$';
        vec2[vec_w/2-layer*2-1][vec_w/2-layer*2]='$';

        vec2[vec_w/2-layer*2][vec_w/2+layer*2]='$';
        vec2[vec_w/2-layer*2][vec_w/2+layer*2+1]='$';
        vec2[vec_w/2-layer*2-1][vec_w/2+layer*2]='$';

        vec2[vec_w/2+layer*2][vec_w/2-layer*2]='$';
        vec2[vec_w/2+layer*2][vec_w/2-layer*2-1]='$';
        vec2[vec_w/2+layer*2+1][vec_w/2-layer*2]='$';

        vec2[vec_w/2+layer*2][vec_w/2+layer*2]='$';
        vec2[vec_w/2+layer*2][vec_w/2+layer*2+1]='$';
        vec2[vec_w/2+layer*2+1][vec_w/2+layer*2]='$';

//        vec2[vec_w/2-layer*2-2][vec_w/2-layer*2]='$';
        for(int i=vec_w/2-(layer)*2;i<=vec_w/2+(layer)*2;i++){

            vec2[i][vec_w/2-2-2*layer]='$';
            vec2[i][vec_w/2+2+2*layer]='$';
            vec2[vec_w/2+2+2*layer][i]='$';
            vec2[vec_w/2-2-2*layer][i]='$';
        }
    }
    void print_vec2(){
        for(auto&s:vec2){
            std::cout<<s<<std::endl;
        }
    }
    std::vector<std::string> vec2;
    bool run(
            int a
    ) {
        vec_w=5+a*4;
        std::string line(vec_w,'.');
        for(int i=0;i<vec_w;i++){
            vec2.push_back(line);
        }
        for(int i=0;i<=a;i++){
            draw(i);
        }
        print_vec2();
        return true;
    }
};

class Solution {
public:
    void run() {

        bool first = true;
        int a, b, c, d, e;
        //        std::cin >> a;
//        std::string s1,s2;
//        while (1){
        while (std::cin>>a) {
//            std::getline(std::cin,s2);
            OneLoop l;
            if (!l.run(a)) {
//                                return;
            }
        }


    }
};

int main() {

    //    bool cur_num= true;
    Solution().run();
    return 0;
}

